﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using APVdP.UserControls;
using DataSettings.Providers;

namespace APVdP
{
    public partial class frmAlterarSituacao : Form
    {
        private int _idEvento;
        private int _idUsuario;
        private RegistroCommands regCommands;
        private formDependentes formDependentes;
        private string dependente1 = string.Empty;
        private string dependente2 = string.Empty;


        public frmAlterarSituacao(int IDEvento, int IDUsuario, string nomeUsuario, double totalPago)
        {
            InitializeComponent();

            regCommands = new RegistroCommands();

            this._idEvento = IDEvento;
            this._idUsuario = IDUsuario;
            this.CarregarPacotesEvento();
            this.txtNomePessoa.Text = nomeUsuario;
            this.txtTotalPago.Text = totalPago.ToString();
        }

        private void CarregarPacotesEvento()
        {
            this.cmbTipoPacote.Items.Clear();

            int idEvento = _idEvento;
            DataTable dt = regCommands.GetListaPacotesEvento(idEvento);

            if (dt.Rows.Count > 0)
            {
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    this.cmbTipoPacote.Items.Add(dt.Rows[i]["Pacote"]);
                }

                //TODO: remove
                this.cmbTipoPacote.SelectedIndex = 0;
            }
        }

        private void ckbPagamentoCompleto_CheckedChanged(object sender, EventArgs e)
        {
            if (this.ckbPagamentoCompleto.Checked)
            {
                this.chkPagamento.Checked = false;
            }
        }
        
        private void btnAtualizarAtualizacao_Click(object sender, EventArgs e)
        {
            string nomeUsuario = this.txtNomePessoa.Text;
            double valorPago = 0;
            string statusPagamento = string.Empty;
            if (this.chkPagamento.Checked)
            {
                statusPagamento = "Incompleto";
            }
            else
            {
                statusPagamento = "Completo";
                valorPago = 20;
            }

            try
            {
                regCommands.AtualizarUsuario(_idEvento, _idUsuario, nomeUsuario, string.Empty, statusPagamento, valorPago);

                if (this.chkPagamento.Checked)
                {
                    this.chkPagamento.Checked = false;
                }
            }
            catch (Exception ex)
            {
                ;
            }
            finally
            {
                DialogResult = DialogResult.OK;
            }
        }

        private void cmbTipoPacote_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (!this.cmbTipoPacote.Text.Equals("Individual", StringComparison.InvariantCultureIgnoreCase))
            {
                if (this.cmbTipoPacote.Text.Equals("Especial", StringComparison.InvariantCultureIgnoreCase))
                {
                    formDependentes = new formDependentes("Especial");
                }
                else if (this.cmbTipoPacote.Text.Equals("Família", StringComparison.InvariantCultureIgnoreCase))
                {
                    formDependentes = new formDependentes("Família");
                }

                DialogResult dr = formDependentes.ShowDialog();

                if (dr == DialogResult.OK)
                {
                    MessageBox.Show("Dependentes inseridos com sucesso!");
                    dependente1 = formDependentes.Dependente1;
                    dependente2 = formDependentes.Dependente2;
                }
            }
        }

        private void btnCancelarAtualizacao_Click(object sender, EventArgs e)
        {
            this.Close();
            DialogResult = DialogResult.Cancel;
        }
    }
}
